package com.example.mobile0123456789hwh0517;

import android.os.Bundle;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

import org.json.JSONException;
import org.json.JSONObject;

import okhttp3.Call;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.Response;

public class MainActivity extends AppCompatActivity {

    private TextView tvMainTitle;
    private TextView tvMainContent;
    String url="http://172.17.0.251:3000/profile";
    //    （2）定义OKHttp客户端网络访问对象
    OkHttpClient okHttpClient = new OkHttpClient();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
//        (1)定义访问路径字符串和使用子线程
        new Thread(new Runnable() {
            @Override
            public void run() {
//                (3)在子线程的run()方法中，定义网络访问请求
                Request request=new Request.Builder()
                        .url(url)
                        .build();
//                (4)根据网络请求request，由OkHttpClient客户端创建请求执行对象call。
                Call call = okHttpClient.newCall(request);
//                (5)调用同步访问方法execute()，从反馈对象response中获得访问结果
                try {
                    Response response=call.execute();
                    String result=response.body().string();
//                    （6）调用runOnUiThread()方法，将读取内容赋给控件
                    runOnUiThread(new Runnable() {
                        @Override
                        public void run() {
//                          对象结构json解析
                            try {
//                              1)创建JSONObject对象
                                JSONObject jsonObject = new JSONObject(result);
//                              2)调用optXXX()方法获取JSON数据中的各类型数据
                                String name = jsonObject.optString("name");
                                tvMainContent.setText(name);
                            } catch (JSONException e) {
                                e.printStackTrace();
                            }
//                            tvMainContent.setText(result);
                        }
                    });
                }catch (Exception e){
                    e.printStackTrace();
                }

            }
        }).start();
    }

    private void initView() {
        tvMainTitle = (TextView) findViewById(R.id.tvMainTitle);
        tvMainContent = (TextView) findViewById(R.id.tvMainContent);
    }
}